const express = require('express');
const router = express.Router();
const { body } = require('express-validator');
const noteController = require('../controllers/noteController');
const authMiddleware = require('../middleware/auth').authMiddleware;
const adminMiddleware = require('../middleware/auth').adminMiddleware;

// 创建笔记（需要认证）
router.post('/', [
  authMiddleware,
  body('title').notEmpty().withMessage('笔记标题不能为空').isLength({ max: 200 }).withMessage('标题长度不能超过200个字符'),
  body('content').notEmpty().withMessage('笔记内容不能为空')
], noteController.createNote);

// 获取笔记列表
router.get('/', noteController.getNotes);

// 获取单个笔记详情
router.get('/:id', noteController.getNoteById);

// 更新笔记（需要认证且只能更新自己的笔记）
router.put('/:id', [
  authMiddleware,
  body('title').notEmpty().withMessage('笔记标题不能为空').isLength({ max: 200 }).withMessage('标题长度不能超过200个字符'),
  body('content').notEmpty().withMessage('笔记内容不能为空')
], noteController.updateNote);

// 删除笔记（需要认证且只能删除自己的笔记）
router.delete('/:id', authMiddleware, noteController.deleteNote);

// 管理员删除笔记（需要管理员权限，可以删除任何笔记）
router.delete('/:id/admin', [authMiddleware, adminMiddleware], noteController.adminDeleteNote);

module.exports = router;